﻿using AutoMapper;
using HikRcsService.Models;
using WCS_Entity.AutoQeuipment;
using WCS_Entity.Dto.AutoEquipmentDto;
using WCS_Entity.Dto.ComProtocolDto;
using WCS_Entity.Dto.MapPositionDto;
using WCS_Entity.Dto.RcsDto;
using WCS_Entity.Dto.TaskDto;
using WCS_Entity.Dto.UpperSysDto;
using WCS_Entity.Dto.UserDto;
using WCS_Entity.Entity;
using WCS_Entity.Entity.UpperSys;
using WCS_Entity.Prorocol;
using WCS_Entity.Rcs;
using WCS_Entity.User;
using WCS_Service.DomianService.Models;

namespace WCS_Mapping
{
    /// <summary>
    /// AutoMapper的全局实体映射配置静态类
    /// </summary>
    public class AutoMapperConfiguration : Profile, AutoMapperIProfile
    {
        public AutoMapperConfiguration()
        {
            CreateMap<UsersEntity, UserDto>();
            CreateMap<CreateUserDto, UsersEntity>();
            CreateMap<RulesEntity, RuleDto>();
            CreateMap<CreateRuleDto, RulesEntity>();
            CreateMap<MenusEntity, MenuDto>();
            CreateMap<AutoEquipmentsEntity, AutoEquipmentDto>();
            CreateMap<CreateAutoEquipmentDto, AutoEquipmentsEntity>();
            CreateMap<ProtocolEntity, ComProtocolDto>();
            CreateMap<CreateComProtocolDto, ProtocolEntity>();
            CreateMap<CreateRcsDto, RcsServiceEntity>();
            CreateMap<RcsServiceEntity, RcsDto>();
            CreateMap<RcsApiEntity,RcsApiDto>();
            CreateMap<CreateRcsApiDto, RcsApiEntity>();
            CreateMap<TaskEntity,TaskDto>();
            CreateMap<CreatTaskDto, TaskEntity>();
            CreateMap<CreatUpperSysDto, UpperSysServiceEntity>();
            CreateMap<CreatUpperSysServiceApiDto, UpperSysServiceApiEntity>();
            CreateMap<UpperSysServiceEntity,UpperSysDto>();
            CreateMap<UpperSysServiceApiEntity, UpperSysServiceApiDto>();
            CreateMap<CreatMapPositionDto,MapPositionEntity>();
            CreateMap<MapPositionEntity,MapPositionDto>();


            CreateMap<BindCtnrAndBinModel, BindCtnrAndBinPara>();
            CreateMap<BindMaterialTypCodeAndBerthModel, BindMaterialTypCodeAndBerthPara>();
            CreateMap<BindPodAndBerthModel,BindPodAndBerthPara>();
            CreateMap<BindPodAndMatModel, BindPodAndMatPara>();
            CreateMap<BlockAreaModel, BlockAreaPara>();
            CreateMap<BlockStgBinModel,BlockStgBinPara>();
            CreateMap<BlockStgBinDataModel, BlockStgBinData>();
            CreateMap<BoxApplyPassModel, BoxApplyPassPara>();
            CreateMap<CancelTaskModel, CancelTaskPara>();
            CreateMap<ClearRoadWayModel, ClearRoadWayPara>();
            CreateMap<ContinueTaskModel, ContinueTaskPara>();
            CreateMap<CreatTaskModel, CreatTaskPara>();
            CreateMap<GenCtuGroupTaskBatchModel, GenCtuGroupTaskBatchPara>();
            CreateMap<GenCtuGroupTaskBatchDataModel, GenCtuGroupTaskBatchData>();
            CreateMap<GetOutPodModel, GetOutPodPara>();
            CreateMap<GetOutPodDataModel,GetOutPodData>();
            CreateMap<LockPositionModel, LockPositionPara>();
            CreateMap<QueryAgvModel, QueryAgvPara>();
            CreateMap<QueryPodBerthAndMatModel, QueryPodBerthAndMatPara>();
            CreateMap<QueryTaskStatusModel, QueryTaskStatusPara>();
            CreateMap<RecoveryAgvModel, RecoveryAgvPara>();
            CreateMap<SetPriorityModel, SetPriorityPara>();
            CreateMap<PriorityInfoModel,PriorityInfo>();
            CreateMap<StopAgvModel, StopAgvPara>();
            CreateMap<SyncMapDatasModel, SyncMapDatasPara>();
            CreateMap<ReturnPodModel, ReturnPodPara>();
            CreateMap<CancelTaskModel, CancelTaskPara>();
            CreateMap<TaskExecuteStateModel,ExecuteResponsePara>();
            CreateMap<BindNotifyModel,BindNotifyPara>();
            CreateMap<BindNotifyDataModel, BindNotifyData>();
            CreateMap<ApplyReturnForValidModel,ApplyReturnForValidPara>();
            CreateMap<ApplyReturnForBinModel,ApplyReturnForBinPara>();
            CreateMap<ApplyReturnForBinDataModel,ApplyReturnForBinData>();
            CreateMap<WarnModel, WarnPara>();
            CreateMap<WarDataModel,WarData>();
            CreateMap<ResultModel, ResultPara>();
            CreateMap<ResultDataModel, ResultDataPara>();
            CreateMap<ChargeRequestModel, ChargeRequestPara>();
            CreateMap<ChargeRequestPara, ChargeRequestModel>();
            CreateMap<GenPreScheduleTaskPara,GenPreScheduleTaskModel>();
            

            CreateMap<AgvStateResultPara, AgvStateResultModel>();
            CreateMap<AgvInfoPara,AgvInfoModel>();
            CreateMap<QueryTaskStatusResultPara, QueryTaskStatusResultModel>();
            CreateMap<RsultData,TaskStatusModel>();
            CreateMap<QueryPodBerthAndMatResultPara, QueryPodBerthAndMatResultModel>();
            CreateMap<PodBerthAndMatInfo,PodBerthAndMatInfoModel>();
            CreateMap<SyncMapDatasResultPara, SyncMapDatasResultModel>();
            CreateMap<MapInfo,MapInfoModel>();
            CreateMap<ExecuteResponsePara, TaskExecuteStateModel>();
            CreateMap<BindNotifyPara,BindNotifyModel>();
            CreateMap<BindNotifyData,BindNotifyDataModel>();
            CreateMap<ApplyReturnForValidPara,ApplyReturnForValidModel>();
            CreateMap<ApplyReturnForBinPara, ApplyReturnForBinModel>();
            CreateMap<ApplyReturnForBinData,ApplyReturnForBinDataModel>();
            CreateMap<WarnPara,WarnModel>();
            CreateMap<WarData,WarDataModel>();
            CreateMap<ResultPara, ResultModel>();
            CreateMap<ResultDataPara, ResultDataModel>();
            CreateMap<GenPreScheduleTaskModel, GenPreScheduleTaskPara>();

            CreateMap<AutoEquipmentDto, RunEqInfoModel<OpticalCustomInfoModel>>();
            CreateMap<AutoEquipmentDto, RunEqInfoModel<AGVCustomInfoModel>>();
            CreateMap<RcsDto, RcsServiceModel>();
            CreateMap<RcsApiDto,RcsApiModel>();

            CreateMap<UpperSysServiceApiDto, ApiInfoModel>();
        }
    }
}
